{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.bmat?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[1, 2],\n",
       "        [3, 4]]),\n",
       " array([[3, 4],\n",
       "        [5, 6]]))"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array(([1,2],[3,4]))\n",
    "b = np.array(([3,4],[5,6]))\n",
    "a,b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(matrix([[1, 2],\n",
       "         [3, 4]]),\n",
       " matrix([[3, 4],\n",
       "         [5, 6]]))"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_mat = np.mat(a)\n",
    "b_mat = np.mat(b)\n",
    "a_mat,b_mat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[-2, -2],\n",
       "        [-2, -2]]),\n",
       " matrix([[-2, -2],\n",
       "         [-2, -2]]))"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a * b,a_mat * b_mat\n",
    "a + b,a_mat + b_mat\n",
    "a - b,a_mat - b_mat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(matrix([[1, 2],\n",
       "         [3, 5]]),\n",
       " matrix([[1, 3],\n",
       "         [2, 5]]))"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_mat,a_mat.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[-2. ,  1. ],\n",
       "        [ 1.5, -0.5]])"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_mat.I  #matrix([[-2. ,  1. ],[ 1.5, -0.5]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_mat[0,:]  #matrix([[1, 2]])\n",
    "a_mat[:,1]  #matrix([[2],[4]])\n",
    "a_mat[1]  #matrix([[3, 4]])\n",
    "a_mat[1,1]  #4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[1, 2],\n",
       "        [3, 5]])"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_mat[1,1] = 5\n",
    "a_mat  #matrix([[1, 2],[3, 5]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[1, 2],\n",
       "        [3, 4]])"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "matrix([[1, 0],[0, 1]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "ax.annotate?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "fig,ax = plt.subplots()\n",
    "ax.set_xlim(0,5)\n",
    "ax.set_ylim(0,5)\n",
    "ax.annotate(\"(1,3)\",(0,0),arrowprops=dict(facecolor=\"blue\",arrowstyle=\"<|-\"),xytext=(0.9,3.15))\n",
    "ax.annotate(\"(3,1)\",(0,0),arrowprops=dict(facecolor=\"green\",arrowstyle=\"<|-\"),xytext=(3.05,1))\n",
    "ax.plot([1,4],[3,4],\"b--\")\n",
    "ax.plot([3,4],[1,4],\"b--\")\n",
    "ax.annotate(\"(4,4)\",(0,0),arrowprops=dict(facecolor=\"green\",arrowstyle=\"<|-\"),xytext=(3.95,4.05))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "#向量的数乘\n",
    "fig,ax = plt.subplots()\n",
    "ax.set_xlim(0,5)\n",
    "ax.set_ylim(0,5)\n",
    "ax.annotate(\"(1,1)\",(0,0),arrowprops=dict(facecolor=\"blue\",arrowstyle=\"<|-\"),xytext=(1,1.1))\n",
    "ax.annotate(\"(3,3)\",(0,0),arrowprops=dict(facecolor=\"green\",arrowstyle=\"<|-\"),xytext=(3,3.1))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 0.],\n",
       "       [0., 1.]])"
      ]
     },
     "execution_count": 194,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.eye(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
